import Vue from 'vue'
import App from './App'
import axios from 'axios'

import {request} from './network/request'
import {request1} from './network/request_promise'

Vue.config.productionTip = false


/* eslint-disable no-new */
new Vue({
  el: '#app',
  render: h => h(App)
})


//返回promise方式
// request1({
//   url:'/home/multidata'
// }).then(res=>{

// }).catch(err=>{
  
// })




//所谓的回调呢，就是这里定义的两个函数赋值给了request.js中request函数里面的success和failure两个参数
//当request函数中执行到success()或failure()两个函数的时候就会把参数传过来执行下面两个函数体
//也就是把函数作为参数传到里面  
//返回来执行下面这两个参数，这就是回调函数   说白了就是你写函数给程序调用
request({
  url:'/home/multidata/aa'
}).then(res=>{
console.log(res)
}).catch(err=>{
console.log(err)
console.log('错了')
})




// request({
//   url:'/home/multidata'
// },
// res=>{
//   console.log(res)
// }
// ,
// err=>{
//   console.log(err)
// })

//使用全局的  axios和对应的配置进行网络请求 

//抽取公共配置  
   // axios.defaults.baseURL = 'http://123.207.32.32:8000'
   //超时时间 5秒
 //   axios.defaults.timeout = 5000



//2.axios发送并发起请求 
// axios.all([
//   axios({
//   url:'/home/multidata'
// }),
//   axios({
//     url:'/home/data',
//     params:{
//       type:'sell',
//       page:5
//     }
//   })])
//   .then(axios.spread((res1,res2)=>{
//     console.log(res1);
//     console.log(res2);
//   }))


  //创建对应的axios实例
  const instance1 = axios.create({
    baseURL:'http://123.207.32.32:8000',
    timeout:5000
  })

instance1({
  url:'/home/multidata',
  params:{
    type:'pop',
    page:1
  }
}).then(res=>{
  //console.log(res)
})

//假设前面的请求不需要headers而接下来的需要，就可以在创建一个axios实例
const instance2 = axios.create({
  baseURL:'http://.....',
  timeout:5000,
  headers:{

  }
})


//当多个请求接口的时候，开发一般会创建多个请求实例